package com.bl.user.controller;

import com.bl.basic.util.JsonResult;
import com.bl.user.dto.BinderDto;
import com.bl.user.dto.LoginDto;
import com.bl.user.service.ILogininfoService;
import org.apache.xmlbeans.impl.xb.ltgfmt.Code;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.Map;

@RestController
@RequestMapping("/login")
public class LoginController {
    @Autowired
    private ILogininfoService logininfoService;

    /**
     *  后台用户登录接口
     */
    @PostMapping("/account")
    public JsonResult accountLogin(@RequestBody LoginDto dto){

        try {
            Map<String,Object> map = logininfoService.accountLogin(dto);
            return JsonResult.me().setResultObj(map);
        }catch (BootstrapMethodError e) {
            e.printStackTrace();
            return  JsonResult.me().setMessage(e.getMessage());
        } catch (Exception e) {
            e.printStackTrace();
            return  JsonResult.me().setMessage(e.getMessage());
        }
    }
    /**
     *  前台用户微信扫码登录接口
     */
    @GetMapping("/wxLogin/{code}")
    public JsonResult wechatLogin(@PathVariable("code") String code){
        try {
            return  logininfoService.wechatLogin(code);
        }catch (BootstrapMethodError e) {
            e.printStackTrace();
            return  JsonResult.me().setMessage(e.getMessage());
        } catch (Exception e) {
            e.printStackTrace();
            return  JsonResult.me().setMessage(e.getMessage());
        }
    }

    /**
     *  前台用户微信扫码登录绑定接口
     */
    @PostMapping("/wechat/binder")
    public JsonResult wechatBinder(@RequestBody BinderDto dto){
        try {
            return  logininfoService.wechatBinder(dto);
        }catch (BootstrapMethodError e) {
            e.printStackTrace();
            return  JsonResult.me().setMessage(e.getMessage());
        } catch (Exception e) {
            e.printStackTrace();
            return  JsonResult.me().setMessage(e.getMessage());
        }
    }
    /**
     *  前台用户退出登录
     */
    @GetMapping("/logout/{token}")
    public JsonResult logout(@PathVariable("token") String token){
        try {
            logininfoService.logout(token);
            return JsonResult.me();
        }catch (BootstrapMethodError e) {
            e.printStackTrace();
            return  JsonResult.me().setMessage(e.getMessage());
        } catch (Exception e) {
            e.printStackTrace();
            return  JsonResult.me().setMessage("网络繁忙！！！！");
        }
    }


}
